#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int SLDataType;

typedef struct SLlistNode
{
	SLDataType data;
	struct SLlistNode* next;

}SLTNode;

SLTNode* BuySLTNode(SLDataType x);

void PrintSLTNode(SLTNode* phead);

void DestroySLTNode(SLTNode* phead);

void PushBackSLT(SLTNode** pphead, SLDataType x);

void PopBackSLT(SLTNode** pphead);

void PushFrontSLT(SLTNode** pphead, SLDataType x);

void PopFrontSLT(SLTNode** pphead);

SLTNode* FindSLT(SLTNode* phead, SLDataType x);

void InsertSLTBefore(SLTNode** pphead, SLTNode* pos, SLDataType x);

void InsertSLTAfter(SLTNode* pos, SLDataType x);

void EraseSLT(SLTNode** pphead, SLTNode* pos);